package com.clothing.customization.repository;

import com.clothing.customization.entity.SystemLog;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * 系统日志数据访问层
 */
@Repository
public interface SystemLogRepository extends JpaRepository<SystemLog, Long> {
    
    /**
     * 根据类型查询系统日志，按创建时间倒序排序
     * @param type 日志类型
     * @return 日志列表
     */
    List<SystemLog> findByTypeOrderByCreateTimeDesc(String type);
    
    /**
     * 根据用户名查询系统日志，按创建时间倒序排序
     * @param username 用户名
     * @return 日志列表
     */
    List<SystemLog> findByUsernameOrderByCreateTimeDesc(String username);
    
    /**
     * 根据类型和用户名查询系统日志，按创建时间倒序排序
     * @param type 日志类型
     * @param username 用户名
     * @return 日志列表
     */
    List<SystemLog> findByTypeAndUsernameOrderByCreateTimeDesc(String type, String username);
    
    /**
     * 根据创建时间范围查询系统日志，按创建时间倒序排序
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 日志列表
     */
    List<SystemLog> findByCreateTimeBetweenOrderByCreateTimeDesc(Date startTime, Date endTime);
    
    /**
     * 获取最近10条系统日志，按创建时间倒序排序
     * @return 日志列表
     */
    List<SystemLog> findTop10ByOrderByCreateTimeDesc();
    
    /**
     * 根据类型获取最近10条系统日志，按创建时间倒序排序
     * @param type 日志类型
     * @return 日志列表
     */
    List<SystemLog> findTop10ByTypeOrderByCreateTimeDesc(String type);
} 